Next: (原文档开头部分), Previous: EasyRSA-Advanced v3.08 中文译本, Up: EasyRSA-Advanced v3.08 中文译本 [Contents]
李守中是开源软件理念坚定的支持者,所以译本虽不是软件,但依旧仿照开源软件的协议发布:
如果读者发现作品中有错误的地方,劳请来信指出。任何提高作品质量的建议李守中都将虚心接纳。
更多文章可于 李守中的主页 在线浏览。
原文档来源:
李守中在翻译 EasyRSA v3 系列文档的过程中发现,很多句子对于程序行为的描述有些模糊。
所以,李守中将不加提示地根据软件行为意译原文档中多数的句子;对于意译困难的句子,李守中会加入以 译者注 为开始标记的文本来帮助读者理解;对于意译之后依旧无法准确描述目标行为的句子,李守中将不加提示地扩充文档的内容。
有能力的读者可以从此链接 easyrsa_v3.08_doc.zip 下载英文原文与本文做对照。
Next: 配置参考 ( Configuration Reference ), Previous: 译者总注, Up: EasyRSA-Advanced v3.08 中文译本 [Contents]
这是一个为熟悉 PKI 流程的高级用户编写的技术参考文档。如果需要更详细的说明,请参阅 EasyRSA-Readme v3.08 中文译本 或 EasyRSA Intro-To-PKI v3.08 中文译本 文档。
Next: 高级拓展处理 ( Advanced extension handling ), Previous: (原文档开头部分), Up: EasyRSA-Advanced v3.08 中文译本 [Contents]
有 3 种方法可以配置 Easy-RSA 的行为,配置的优先级按以下列表排序 ( 低优先级的配置不会覆盖高优先级的配置 ):
vars
的文件 ( 如果存在的话 )。 ( 参阅下面的 自动探测 vars )
请注意,尽管任何环境变量都可以在 vars 文件中被定义和赋值 ( 即使这个环境变量并没有默认地被写在 vars 文件里 ),但并非所有的选项都可以在列表提到的地方进行配置。
Next: OpenSSL 配置 ( OpenSSL Config ), Previous: 配置源 ( Configuration Sources), Up: 配置参考 ( Configuration Reference ) [Contents]
Easy-RSA 所要读取配置的 vars 文件的名称就是 vars
,不带任何的拓展名。写在这个文件中的变量值不会覆盖写在更高优先级的变量值,比如,vars 文件中的变量值不会覆盖配置在环境变量中的值,配置在环境变量中的值不会覆盖在命令行中配置的值。
vars 文件的查找顺序如下,最先找到的会被使用:
--vars
指定 vars 文件路径。
EASYRSA_VARS_FILE
变量,这个变量里存储了 vars 文件的路径。
EASYRSA_PKI
变量,这个变量里存储了 PKI 文件夹的路径。在 PKI 文件夹中找 vars 文件。
$PWD/pki
下找 vars 文件。
EASYRSA
变量,这个变量里存储了 Easy-RSA 的根路径,easyrsa 脚本文件就位于这个路径下。也就是在和 easyrsa 可执行脚本文件同级的路径中找 vars 文件。
如果环境变量中存在 EASYRSA_NO_VARS
变量,将在所有情况下覆盖 VARS 文件的源,包括随后将其定义为全局选项。 译者注: 作者想说的是,只要设置了 EASYRSA_NO_VARS
环境变量,Easy-RSA 就不会从任何地方找这个 vars 文件,包括命令行中的 --vars
选项也不生效。经实测,如果只执行了 export EASYRSA_NO_VARS
而没有赋值,那么相当于没设这个环境变量。但随便给个什么值 export EASYRSA_NO_VARS=blablabla
都会让这个环境变量生效。
Previous: 自动探测 vars ( vars Autodetection ), Up: 配置参考 ( Configuration Reference ) [Contents]
Easy-RSA 与 OpenSSL 配置文件 ( .cnf ) 紧密耦合来给脚本提供灵活性。这就要求 OpenSSL 的配置文件能被 Easy-RSA 读取,但也可以为特定的 PKI 使用不同的 OpenSSL 配置文件,甚至可以在调用 Easy-RSA 的时候指定其他的 OpenSSL 配置文件。
Easy-RSA 将用以下方法检索 OpenSSL 配置文件:
EASYRSA_SSL_CONF
中直接读出 OpenSSL 配置文件的路径。
EASYRSA_SSL_CONF
变量存储了 OpenSSL 配置文件的路径。
EASYRSA_PKI
存储的 pki 文件夹中寻找文件名为 openssl-easyrsa.cnf
的文件作为 OpenSSL 的配置文件。
EASYRSA
存储的 Easy-RSA 根路径下寻找名为 openssl-easyrsa.cnf
的文件作为 OpenSSL 的配置文件。
Next: 环境变量手册 ( Environmental Variables Reference ), Previous: 配置参考 ( Configuration Reference ), Up: EasyRSA-Advanced v3.08 中文译本 [Contents]
通常,证书的扩展段的内容取决于签名期间 CLI 中给定的证书类型。 译者注: CLI 给定的证书类型必须是 x509-types 文件夹中存在的类型。 然后 Easy-RSA 会根据指定的类型到 x509-types 目录中找预定义的类型文件,根据文件中的字段配置添加对应的 OpenSSL 扩展。在 PKI 目录 ( EASYRSA_PKI
) 中建立一个 x509-types 文件夹可以覆盖 Easy-RSA 根目录下的 x509-types 文件夹。 译者注: 这样,这个 PKI 以后都从 PKI 目录下的 x509-types 文件夹中读取扩展信息。
x509-types 目录中名为 COMMON
的文件会被添加到每个证书中。这这文件是为使用 CDP 而设计的,但也可以通过这个文件添加任意扩展到每个被签出的证书中。 译者注: CDP ( CRL Distribution Point ), CLR ( Certificate Revocation List )。CDP 是数字证书中的信息,它描述了如何获取证书的 CRL 列表。
此外,环境变量 EASYRSA_EXTRA_EXTS
中的内容会被添加到 OpenSSL 扩展中的原始文本里。环境变量的内容会按原样附加到证书扩展中。无效的 OpenSSL 配置会导致 easyrsa 执行失败。
Previous: 高级拓展处理 ( Advanced extension handling ), Up: EasyRSA-Advanced v3.08 中文译本 [Contents]
下面显示了环境变量列表;和环境变量有同样效果的,比环境变量优先级更高的命令行选项;以及简短的描述:
EASYRSA
Easy-RSA 的根路径,在这个根路径下有 easyrsa 脚本文件。
EASYRSA_OPENSSL
openssl 可执行文件的路径,方便 easyrsa 调用 openssl。
EASYRSA_SSL_CONF
openssl 配置文件的路径。
EASYRSA_PKI
( CLI: --pki-dir
) pki 目录的路径,默认是 $PWD/pki
。
EASYRSA_DN
( CLI: --dn-mode
) 字符串 cn_only
( 只用 CommonName 识别证书颁发者 ) 或者 org
( CommonName + 组织信息识别证书颁发者 ) 用来更改要包含在 req DN 中的字段。
EASYRSA_REQ_COUNTRY
( CLI: --req-c
) ( DN 中用 CommonName + 组织信息识别证书颁发者的话 ) 在 DN 中设置组织所在国家。
EASYRSA_REQ_PROVINCE
( CLI: --req-st
) ( DN 中用 CommonName + 组织信息识别证书颁发者的话 ) 在 DN 中设置组织所在州。
EASYRSA_REQ_CITY
( CLI: --req-city
) ( DN 中用 CommonName + 组织信息识别证书颁发者的话 ) 在 DN 中设置组织所在城市。
EASYRSA_REQ_ORG
( CLI: --req-org
) ( DN 中用 CommonName + 组织信息识别证书颁发者的话 ) 在 DN 中设置组织名。
EASYRSA_REQ_EMAIL
( CLI: --req-email
) ( 中DN 用 CommonName + 组织信息识别证书颁发者的话 ) 在 DN 中设置组织邮箱。
EASYRSA_REQ_OU
( CLI: --req-ou
) ( DN 中用 CommonName + 组织信息识别证书颁发者的话 ) 在 DN 中设置组织部门名。
EASYRSA_KEY_SIZE
( CLI: --key-size
) 以 bit 为单位设置私钥的大小。
EASYRSA_ALGO
( CLI: --use-algo
) 设置要使用的加密算法: rsa
或 ec
。
EASYRSA_CURVE
( CLI: --curve
) 设置要用哪个 EC 曲线。
EASYRSA_EC_DIR
用来存储生成的 ecparams 的目录的路径。
EASYRSA_CA_EXPIRE
( CLI: --days
) 设置 CA 证书过期的时间,单位是天。
EASYRSA_CERT_EXPIRE
( CLI: --days
) 设置被签发的证书的过期时间,单位是天。
EASYRSA_CRL_DAYS
( CLI: --days
) 设置两次发布被吊销证书列表的间隔时间,单位是天。
EASYRSA_NS_SUPPORT
( CLI: --ns-cert
) 值为字符串 yes
或者 no
,是否包括不推荐使用的 Netscape 扩展。
EASYRSA_NS_COMMENT
( CLI: --ns-comment
) 使用不推荐使用的 Netscape 扩展时要包含的字符串注释。
EASYRSA_TEMP_FILE
动态创建 .req 文件 / 证书扩展时使用的临时文件的路径。
EASYRSA_REQ_CN
( CLI: --req-cn
) 默认的 CN,需要在 BATCH 模式下设置。
EASYRSA_DIGEST
( CLI: --digest
) 设置用于给证书请求 ( CSR ) 文件签名时的哈希摘要。
EASYRSA_BATCH
( CLI: --batch
) 启用 batch ( 无交互式提示 ) 模式。这个环境变量的值,必须是非零字符串 ( easyrsa 脚本开始执行之后,CLI 不接受非必要的输入 )。
EASYRSA_PASSIN
( CLI: --passin
) 允许使用任何 openssl 密码选项 ( 如 pass:1234 或 env:var ) 指定密码源。
EASYRSA_PASSOUT
( CLI: --passout
) 允许使用任何 openssl 密码选项 ( 如 pass:1234 或 env:var ) 指定密码源。
注意: 需要在实际命令之前提供全局选项。 译者注: easyrsa 命令的格式是 easyrsa [options] COMMAND [command-options]
。作者是想说,列表中,括号里的命令行选项必须放在 COMMAND
部分之前。即,括号中的命令行选项是 options
段中的内容。